Valuation of and Marketplace for Inter-Network Links Between Balloon Network and Terrestrial Network

ABSTRACT

Embodiments relate to a marketplace for inter-network links between a balloon network and a terrestrial data network. An example method may involve a computer-based purchasing agent: (i) determining a demand for inter-network bandwidth between a balloon network and a terrestrial data network, (ii) determining one or more offers to provide an inter-network link, wherein the inter-network link provides inter-network bandwidth between the balloon network and the terrestrial data network, and wherein each offer is associated with a corresponding client device, (iii) based at least in part on a comparison of: (a) the demand for inter-network bandwidth and (b) the one or more offers to provide an inter-network link, selecting one or more of the offers to provide an inter-network link, and (iv) initiating a process to establish an inter-network link at each client device that corresponds to one of the one or more selected offers.

BACKGROUND

Unless otherwise indicated herein, the materials described in thissection are not prior art to the claims in this application and are notadmitted to be prior art by inclusion in this section.

Computing devices such as personal computers, laptop computers, tabletcomputers, cellular phones, and countless types of Internet-capabledevices are increasingly prevalent in numerous aspects of modern life.As such, the demand for data connectivity via the Internet, cellulardata networks, and other such networks, is growing. However, there aremany areas of the world where data connectivity is still unavailable, orif available, is unreliable and/or costly. Accordingly, additionalnetwork infrastructure is desirable.

SUMMARY

In one aspect, a computer-implemented method involves a computingdevice: (i) determining a demand for inter-network bandwidth between aballoon network and a terrestrial data network; (ii) determining one ormore offers to provide an inter-network link, wherein the inter-networklink provides inter-network bandwidth between the balloon network andthe terrestrial data network, and wherein each offer is associated witha corresponding client device; (iii) based at least in part on acomparison of: (a) the demand for inter-network bandwidth and (b) theone or more offers to provide an inter-network link, selecting one ormore of the offers to provide an inter-network link; and (iv) initiatinga process to establish an inter-network link at each client device thatcorresponds to one of the one or more selected offers.

In another aspect, a computing system may include a non-transitorycomputer readable medium and program instructions stored on thenon-transitory computer readable medium. The program instructions areexecutable by at least one processor to cause the client device to: (i)determine a demand for inter-network bandwidth between a balloon networkand a terrestrial data network; (ii) determine one or more offers toprovide an inter-network link, wherein the inter-network link providesinter-network bandwidth between the balloon network and the terrestrialdata network, and wherein each offer is associated with a correspondingclient device; (iii) based at least in part on a comparison of: (a) thedemand for inter-network bandwidth and (b) the one or more offers toprovide an inter-network link, select one or more of the offers toprovide an inter-network link; and (iv) initiate a process to establishan inter-network link at each client device that corresponds to one ofthe one or more selected offers.

In a further aspect, a non-transitory computer readable medium hasstored therein instructions that are executable by a client computingdevice to cause the client computing device to perform functionsincluding: (i) determining a demand for inter-network bandwidth betweena balloon network and a terrestrial data network; (ii) determining oneor more offers to provide an inter-network link, wherein theinter-network link provides inter-network bandwidth between the balloonnetwork and the terrestrial data network, and wherein each offer isassociated with a corresponding client device; (iii) based at least inpart on a comparison of: (a) the demand for inter-network bandwidth and(b) the one or more offers to provide an inter-network link, selectingone or more of the offers to provide an inter-network link; and (iv)initiating a process to establish an inter-network link at each clientdevice that corresponds to one of the one or more selected offers.

In yet another aspect, a computer-implemented method involves: (i)determining, based at least in part on a measure of bandwidthutilization by a client device, an amount of available bandwidth thatthe client device can provide for an inter-network link between aballoon network and a terrestrial data network; (ii) determining offerpricing information for the available bandwidth; and (iii) sending anoffer message that indicates an offer to provide an inter-network linkbetween the balloon network and the terrestrial data network, whereinthe offer message comprises: (a) an indication of the amount ofavailable bandwidth and (b) the pricing information for the availablebandwidth.

These as well as other aspects, advantages, and alternatives, willbecome apparent to those of ordinary skill in the art by reading thefollowing detailed description, with reference where appropriate to theaccompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a simplified block diagram illustrating a balloon network,according to an example embodiment.

FIG. 2 is a block diagram illustrating a balloon-network control system,according to an example embodiment.

FIG. 3 is a simplified block diagram illustrating a high-altitudeballoon, according to an example embodiment.

FIG. 4 is a simplified block diagram illustrating a balloon network thatincludes super-nodes and sub-nodes, according to an example embodiment.

FIG. 5A is a block diagram illustrating a client device that isconfigured to provide a data link between a balloon network and aterrestrial data network.

FIG. 5B is a simplified block diagram showing more detail of theinter-network bandwidth marketplace that is also shown in FIG. 5A.

FIGS. 6A and 6B are flow charts illustrating computer-implementedmethods, according to example embodiments.

FIG. 7 is a flow chart illustrating a computer-implemented method,according to an example embodiment.

FIGS. 8A and 8B are simplified illustrations of scenarios in whichexample methods may be implemented.

FIG. 9 is a flow chart illustrating a computer-implemented method,according to an example embodiment.

FIG. 10 is a flow chart illustrating a computer-implemented accountingmethod, according to an exemplary embodiment.

DETAILED DESCRIPTION

Example methods and systems are described herein. Any example embodimentor feature described herein is not necessarily to be construed aspreferred or advantageous over other embodiments or features. Theexample embodiments described herein are not meant to be limiting. Itwill be readily understood that certain aspects of the disclosed systemsand methods can be arranged and combined in a wide variety of differentconfigurations, all of which are contemplated herein.

Furthermore, the particular arrangements shown in the Figures should notbe viewed as limiting. It should be understood that other embodimentsmay include more or less of each element shown in a given Figure.Further, some of the illustrated elements may be combined or omitted.Yet further, an example embodiment may include elements that are notillustrated in the Figures.

I. OVERVIEW

Example embodiments help to provide a data network that includes aplurality of balloons; for example, a mesh network formed byhigh-altitude balloons deployed in the stratosphere. Since winds in thestratosphere may affect the locations of the balloons in a differentialmanner, each balloon in an example network may be configured to changeits horizontal position by adjusting its vertical position (i.e.,altitude). For instance, by adjusting its altitude, a balloon may beable find winds that will carry it horizontally (e.g., latitudinallyand/or longitudinally) to a desired horizontal location.

Further, in an example balloon network, the balloons may communicatewith one another using free-space optical communications. For example,balloon-to-balloon free-space optical links may be implemented usinglasers. As another example, balloons may be configured for opticalcommunications using ultra-bright LEDs (which are also referred to as“high-power” or “high-output” LEDs). In addition, the balloons maycommunicate with ground-based station(s) using radio-frequency (RF)communications.

Operating a wireless balloon-to-ground link between a high-altitudeballoon and a ground-based terrestrial network may be expensive, and canresult in bottlenecks. Accordingly, balloons in a high-altitude balloonnetwork may communicate with individual wireless client devices (such ascell phones) on the ground using, for example, a long-term evolution(LTE) protocol. If such wireless devices are in range of, for example,WiFi access points, then the client devices may operate as inter-networklinks, which relay communications between the balloon network and aterrestrial data network such as the Internet via the WiFi network.Further, to encourage users of such client devices to allow theirdevices to be utilized as inter-network links between the balloonnetwork and terrestrial data networks, the operator of the balloonnetwork may pay wireless device users for transferring data to and fromthe balloon network.

Various types of incentives may be provided in exchange for a clientdevice's operation as an inter-network link between a balloon networkand a terrestrial data network. For instance, the amount of a credit maybe based on an amount of data that is transmitted via the inter-networklink that a client device provides between a balloon network and aterrestrial data network and/or may be based on an amount of time forwhich a client device allows its resources to be utilized for aninter-network link between a balloon network and a terrestrial datanetwork. Further, the credit may be a monetary amount or may benon-monetary. Other types of credits in exchange for allowing a clientdevice to be used for an inter-network link are also possible.

It may be difficult for service providers to assess when and where suchinter-network links are needed to meet the demand for bandwidth.Further, when a need for inter-network bandwidth is identified, it maybe difficult for service providers to locate client devices to meet theneed, and to negotiate inter-network links with individual clientdevices. Accordingly, example embodiments may help to dynamically andintelligently determine when and/or how to request that users offertheir devices for inter-network links, and/or how much to offer to payfor such inter-network links.

For instance, an example embodiment may help to provide a marketplaceand/or clearinghouse system to facilitate transactions for inter-networklinks. In particular, embodiments may involve a marketplace where acomputer-based link-purchasing agent can access offers for inter-networkbandwidth from client devices. Further, computer-based selling agentsmay have access to the marketplace in order to offer bandwidth forinter-network links on behalf of client devices. As such, themarketplace may facilitate transactions for inter-network bandwidthbetween purchasing agents and selling agents. In some embodiments, itmay additionally or alternatively be possible for client devices toaccess such a marketplace directly (without using selling agents).

To do determine when and how to purchase inter-network bandwidth, apurchasing agent may evaluate current network conditions in the balloonnetwork and between the balloon network and a terrestrial network, anddetermine a demand for inter-network bandwidth. The purchasing agent maythen determine a price or prices that a service provider (or anotherperson or entity) is willing to pay for inter-network bandwidth in thecurrent network conditions. For instance, a purchasing agent couldevaluate and quantify the change (e.g., decrease) in latency for networktraffic and/or the change in capacity that is expected to result if aclient device dedicates a certain amount of bandwidth to aninter-network link. When determining a value to offer for inter-networkbandwidth, the purchasing agent may then take into account an expectedneed for bandwidth between the balloon network and the terrestrialnetwork at a particular location.

In a further aspect, the purchasing agent could consider buyer-sidefactors such as the number of client devices that are available to serveas an inter-network link in a particular location and/or a clientdevice's usage of its bandwidth for its own communications (e.g., thevalue may be adjusted based on the assumption that a client device willvalue bandwidth it is currently using for its own communications morethan excess bandwidth that is not in use).

In another aspect, users of client devices may create computer-basedselling agents that value and offer bandwidth from the client devices'network connections for inter-network links. The pricing that is offeredmay be based on factors such as a client device's historical, current,and/or expected usage of its bandwidth for its own communications, amongother possible factors.

Note that a “user” may take many forms, such as a person, a group ofpersons, an entity such as a corporation or an ISP, or a group ofentities, among other possibilities. Accordingly, a “user-account” maybe created for any type of user.

II. EXAMPLE BALLOON NETWORKS

In some embodiments, a high-altitude-balloon network may be homogenous.That is, the balloons in a high-altitude-balloon network could besubstantially similar to each other in one or more ways. Morespecifically, in a homogenous high-altitude-balloon network, eachballoon is configured to communicate with nearby balloons via free-spaceoptical links. Further, some or all of the balloons in such a network,may also be configured communicate with ground-based station(s) using RFcommunications. (Note that in some embodiments, the balloons may behomogenous in so far as each balloon is configured for free-spaceoptical communication with other balloons, but heterogeneous with regardto RF communications with ground-based stations.)

In other embodiments, a high-altitude-balloon network may beheterogeneous, and thus may include two or more different types ofballoons. For example, some balloons may be configured as super-nodes,while other balloons may be configured as sub-nodes. Some balloons maybe configured to function as both a super-node and a sub-node. Suchballoons may function as either a super-node or a sub-node at aparticular time, or, alternatively, act as both simultaneously dependingon the context. For instance, an example balloon could aggregate searchrequests of a first type to transmit to a ground-based station. Theexample balloon could also send search requests of a second type toanother balloon, which could act as a super-node in that context.

In such a configuration, the super-node balloons may be configured tocommunicate with nearby super-node balloons via free-space opticallinks. However, the sub-node balloons may not be configured forfree-space optical communication, and may instead be configured for someother type of communication, such as RF communications. In that case, asuper-node may be further configured to communicate with sub-nodes usingRF communications. Thus, the sub-nodes may relay communications betweenthe super-nodes and one or more ground-based stations using RFcommunications. In this way, the super-nodes may collectively functionas backhaul for the balloon network, while the sub-nodes function torelay communications from the super-nodes to ground-based stations.Other differences could be present between balloons in a heterogeneousballoon network.

FIG. 1 is a simplified block diagram illustrating a balloon network 100,according to an example embodiment. As shown, balloon network 100includes balloons 102A to 102F, which are configured to communicate withone another via free-space optical links 104. Balloons 102A to 102Fcould additionally or alternatively be configured to communicate withone another via RF links 114. Balloons 102A to 102F may collectivelyfunction as a mesh network for packet-data communications. Further,balloons 102A to 102F may be configured for RF communications withground-based stations 106 and 112 via RF links 108. In another exampleembodiment, balloons 102A to 102F could be configured to communicate viaoptical link 110 with ground-based station 112.

In an example embodiment, balloons 102A to 102F are high-altitudeballoons, which are deployed in the stratosphere. At moderate latitudes,the stratosphere includes altitudes between approximately 10 kilometers(km) and 50 km altitude above the surface. At the poles, thestratosphere starts at an altitude of approximately 8 km. In an exampleembodiment, high-altitude balloons may be generally configured tooperate in an altitude range within the stratosphere that has lowerwinds (e.g., between 5 and 20 miles per hour (mph)).

More specifically, in a high-altitude-balloon network, balloons 102A to102F may generally be configured to operate at altitudes between 17 kmand 25 km (although other altitudes are possible). This altitude rangemay be advantageous for several reasons. In particular, this layer ofthe stratosphere generally has mild wind and turbulence (e.g., windsbetween 5 and 20 miles per hour (mph)). Further, while the winds between17 km and 25 km may vary with latitude and by season, the variations canbe modelled in a reasonably accurate manner. Additionally, altitudesabove 17 km are typically above the maximum flight level designated forcommercial air traffic. Therefore, interference with commercial flightsis not a concern when balloons are deployed between 17 km and 25 km.

To transmit data to another balloon, a given balloon 102A to 102F may beconfigured to transmit an optical signal via an optical link 104. In anexample embodiment, a given balloon 102A to 102F may use one or morehigh-power light-emitting diodes (LEDs) to transmit an optical signal.Alternatively, some or all of balloons 102A to 102F may include lasersystems for free-space optical communications over optical links 104.Other types of free-space optical communication are possible. Further,in order to receive an optical signal from another balloon via anoptical link 104, a given balloon 102A to 102F may include one or moreoptical receivers. Additional details of example balloons are discussedin greater detail below, with reference to FIG. 3.

In a further aspect, balloons 102A to 102F may utilize one or more ofvarious different RF air-interface protocols for communicationground-based stations 106 and 112 via RF links 108. For instance, someor all of balloons 102A to 102F may be configured to communicate withground-based stations 106 and 112 using protocols described in IEEE802.11 (including any of the IEEE 802.11 revisions), various cellularprotocols such as GSM, CDMA, UMTS, EV-DO, WiMAX, and/or LTE, and/or oneor more propriety protocols developed for balloon-to-ground RFcommunication, among other possibilities.

In a further aspect, there may scenarios where RF links 108 do notprovide a desired link capacity for balloon-to-ground communications.For instance, increased capacity may be desirable to provide backhaullinks from a ground-based gateway, and in other scenarios as well.Accordingly, an example network may also include downlink balloons,which could provide a high-capacity air-ground link.

For example, in balloon network 100, balloon 102F could be configured asa downlink balloon. Like other balloons in an example network, adownlink balloon 102F may be operable for optical communication withother balloons via optical links 104. However, downlink balloon 102F mayalso be configured for free-space optical communication with aground-based station 112 via an optical link 110. Optical link 110 maytherefore serve as a high-capacity link (as compared to an RF link 108)between the balloon network 100 and a ground-based station 112.

Note that in some implementations, a downlink balloon 102F mayadditionally be operable for RF communication with ground-based stations106. In other cases, a downlink balloon 102F may only use an opticallink for balloon-to-ground communications. Further, while thearrangement shown in FIG. 1 includes just one downlink balloon 102F, anexample balloon network can also include multiple downlink balloons. Onthe other hand, a balloon network can also be implemented without anydownlink balloons.

In other implementations, a downlink balloon may be equipped with aspecialized, high-bandwidth RF communication system forballoon-to-ground communications, instead of, or in addition to, afree-space optical communication system. The high-bandwidth RFcommunication system may take the form of an ultra-wideband system,which provides an RF link with substantially the same capacity as theoptical links 104. Other forms are also possible.

Balloons could be configured to establish a communication link withspace-based satellites in addition to, or as an alternative to, aground-based communication link.

Ground-based stations, such as ground-based stations 106 and/or 112, maytake various forms. Generally, a ground-based station may includecomponents such as transceivers, transmitters, and/or receivers forcommunication via RF links and/or optical links with a balloon network.Further, a ground-based station may use various air-interface protocolsin order communicate with a balloon 102A to 102F over an RF link 108. Assuch, ground-based stations 106 and 112 may be configured as an accesspoint with which various devices can connect to balloon network 100.Ground-based stations 106 and 112 may have other configurations and/orserve other purposes without departing from the scope of the invention.

Further, some ground-based stations, such as ground-based stations 106and 112, may be configured as gateways between balloon network 100 andone or more other networks. Such ground-based stations 106 and 112 maythus serve as an interface between the balloon network and the Internet,a cellular service provider's network, and/or other types of networks.Variations on this configuration and other configurations ofground-based stations 106 and 112 are also possible.

A. Mesh Network Functionality

As noted, balloons 102A to 102F may collectively function as a meshnetwork. More specifically, since balloons 102A to 102F may communicatewith one another using free-space optical links, the balloons maycollectively function as a free-space optical mesh network.

In a mesh-network configuration, each balloon 102A to 102F may functionas a node of the mesh network, which is operable to receive datadirected to it and to route data to other balloons. As such, data may berouted from a source balloon to a destination balloon by determining anappropriate sequence of optical links between the source balloon and thedestination balloon. These optical links may be collectively referred toas a “lightpath” for the connection between the source and destinationballoons. Further, each of the optical links may be referred to as a“hop” on the lightpath.

To operate as a mesh network, balloons 102A to 102F may employ variousrouting techniques and self-healing algorithms. In some embodiments, aballoon network 100 may employ adaptive or dynamic routing, where alightpath between a source and destination balloon is determined andset-up when the connection is needed, and released at a later time.Further, when adaptive routing is used, the lightpath may be determineddynamically depending upon the current state, past state, and/orpredicted state of the balloon network.

In addition, the network topology may change as the balloons 102A to102F move relative to one another and/or relative to the ground.Accordingly, an example balloon network 100 may apply a mesh protocol toupdate the state of the network as the topology of the network changes.For example, to address the mobility of the balloons 102A to 102F,balloon network 100 may employ and/or adapt various techniques that areemployed in mobile ad hoc networks (MANETs). Other examples are possibleas well.

In some implementations, a balloon network 100 may be configured as atransparent mesh network. More specifically, in a transparent balloonnetwork, the balloons may include components for physical switching thatis entirely optical, without any electrical involved in physical routingof optical signals. Thus, in a transparent configuration with opticalswitching, signals travel through a multi-hop lightpath that is entirelyoptical.

In other implementations, the balloon network 100 may implement afree-space optical mesh network that is opaque. In an opaqueconfiguration, some or all balloons 102A to 102F may implementoptical-electrical-optical (OEO) switching. For example, some or allballoons may include optical cross-connects (OXCs) for OEO conversion ofoptical signals. Other opaque configurations are also possible.Additionally, network configurations are possible that include routingpaths with both transparent and opaque sections.

In a further aspect, balloons in an example balloon network 100 mayimplement wavelength division multiplexing (WDM), which may help toincrease link capacity. When WDM is implemented with transparentswitching, physical lightpaths through the balloon network may besubject to the “wavelength continuity constraint.” More specifically,because the switching in a transparent network is entirely optical, itmay be necessary to assign the same wavelength for all optical links ona given lightpath.

An opaque configuration, on the other hand, may avoid the wavelengthcontinuity constraint. In particular, balloons in an opaque balloonnetwork may include the OEO switching systems operable for wavelengthconversion. As a result, balloons can convert the wavelength of anoptical signal at each hop along a lightpath. Alternatively, opticalwavelength conversion could take place at only selected hops along thelightpath.

Further, various routing algorithms may be employed in an opaqueconfiguration. For example, to determine a primary lightpath and/or oneor more diverse backup lightpaths for a given connection, exampleballoons may apply or consider shortest-path routing techniques such asDijkstra's algorithm and k-shortest path, and/or edge and node-diverseor disjoint routing such as Suurballe's algorithm, among others.Additionally or alternatively, techniques for maintaining a particularQuality of Service (QoS) may be employed when determining a lightpath.Other techniques are also possible.

B. Station-Keeping Functionality

In an example embodiment, a balloon network 100 may implementstation-keeping functions to help provide a desired network topology.For example, station-keeping may involve each balloon 102A to 102Fmaintaining and/or moving into a certain position relative to one ormore other balloons in the network (and possibly in a certain positionrelative to the ground). As part of this process, each balloon 102A to102F may implement station-keeping functions to determine its desiredpositioning within the desired topology, and if necessary, to determinehow to move to the desired position.

The desired topology may vary depending upon the particularimplementation. In some cases, balloons may implement station-keeping toprovide a substantially uniform topology. In such cases, a given balloon102A to 102F may implement station-keeping functions to position itselfat substantially the same distance (or within a certain range ofdistances) from adjacent balloons in the balloon network 100.

In other cases, a balloon network 100 may have a non-uniform topology.For instance, example embodiments may involve topologies where balloonsarea distributed more or less densely in certain areas, for variousreasons. As an example, to help meet the higher bandwidth demands thatare typical in urban areas, balloons may be clustered more densely overurban areas. For similar reasons, the distribution of balloons may bedenser over land than over large bodies of water. Many other examples ofnon-uniform topologies are possible.

In a further aspect, the topology of an example balloon network may beadaptable. In particular, station-keeping functionality of exampleballoons may allow the balloons to adjust their respective positioningin accordance with a change in the desired topology of the network. Forexample, one or more balloons could move to new positions to increase ordecrease the density of balloons in a given area. Other examples arepossible.

In some embodiments, a balloon network 100 may employ an energy functionto determine if and/or how balloons should move to provide a desiredtopology. In particular, the state of a given balloon and the states ofsome or all nearby balloons may be input to an energy function. Theenergy function may apply the current states of the given balloon andthe nearby balloons to a desired network state (e.g., a statecorresponding to the desired topology). A vector indicating a desiredmovement of the given balloon may then be determined by determining thegradient of the energy function. The given balloon may then determineappropriate actions to take in order to effectuate the desired movement.For example, a balloon may determine an altitude adjustment oradjustments such that winds will move the balloon in the desired manner.

C. Control of Balloons in a Balloon Network

In some embodiments, mesh networking and/or station-keeping functionsmay be centralized. For example, FIG. 2 is a block diagram illustratinga balloon-network control system, according to an example embodiment. Inparticular, FIG. 2 shows a distributed control system, which includes acentral control system 200 and a number of regional control-systems 202Ato 202B. Such a control system may be configured to coordinate certainfunctionality for balloon network 204, and as such, may be configured tocontrol and/or coordinate certain functions for balloons 206A to 206I.

In the illustrated embodiment, central control system 200 may beconfigured to communicate with balloons 206A to 206I via number ofregional control systems 202A to 202C. These regional control systems202A to 202C may be configured to receive communications and/oraggregate data from balloons in the respective geographic areas thatthey cover, and to relay the communications and/or data to centralcontrol system 200. Further, regional control systems 202A to 202C maybe configured to route communications from central control system 200 tothe balloons in their respective geographic areas. For instance, asshown in FIG. 2, regional control system 202A may relay communicationsand/or data between balloons 206A to 206C and central control system200, regional control system 202B may relay communications and/or databetween balloons 206D to 206F and central control system 200, andregional control system 202C may relay communications and/or databetween balloons 206G to 206I and central control system 200.

In order to facilitate communications between the central control system200 and balloons 206A to 206I, certain balloons may be configured asdownlink balloons, which are operable to communicate with regionalcontrol systems 202A to 202C. Accordingly, each regional control system202A to 202C may be configured to communicate with the downlink balloonor balloons in the respective geographic area it covers. For example, inthe illustrated embodiment, balloons 206A, 206F, and 206I are configuredas downlink balloons. As such, regional control systems 202A to 202C mayrespectively communicate with balloons 206A, 206F, and 206I via opticallinks 206, 208, and 210, respectively.

In the illustrated configuration, where only some of balloons 206A to206I are configured as downlink balloons, the balloons 206A, 206F, and206I that are configured as downlink balloons may function to relaycommunications from central control system 200 to other balloons in theballoon network, such as balloons 206B to 206E, 206G, and 206H. However,it should be understood that it in some implementations, it is possiblethat all balloons may function as downlink balloons. Further, while FIG.2 shows multiple balloons configured as downlink balloons, it is alsopossible for a balloon network to include only one downlink balloon.

Note that a regional control system 202A to 202C may in fact just beparticular type of ground-based station that is configured tocommunicate with downlink balloons (e.g. the ground-based station 112 ofFIG. 1). Thus, while not shown in FIG. 2, a control system may beimplemented in conjunction with other types of ground-based stations(e.g., access points, gateways, etc.).

In a centralized control arrangement, such as that shown in FIG. 2, thecentral control system 200 (and possibly regional control systems 202Ato 202C as well) may coordinate certain mesh-networking functions forballoon network 204. For example, balloons 206A to 206I may send thecentral control system 200 certain state information, which the centralcontrol system 200 may utilize to determine the state of balloon network204. The state information from a given balloon may include locationdata, optical-link information (e.g., the identity of other balloonswith which the balloon has established an optical link, the bandwidth ofthe link, wavelength usage and/or availability on a link, etc.), winddata collected by the balloon, and/or other types of information.Accordingly, the central control system 200 may aggregate stateinformation from some or all the balloons 206A to 206I in order todetermine an overall state of the network.

The overall state of the network may then be used to coordinate and/orfacilitate certain mesh-networking functions such as determininglightpaths for connections. For example, the central control system 200may determine a current topology based on the aggregate stateinformation from some or all the balloons 206A to 206I. The topology mayprovide a picture of the current optical links that are available inballoon network and/or the wavelength availability on the links. Thistopology may then be sent to some or all of the balloons so that arouting technique may be employed to select appropriate lightpaths (andpossibly backup lightpaths) for communications through the balloonnetwork 204.

In a further aspect, the central control system 200 (and possiblyregional control systems 202A to 202C as well) may also coordinatecertain station-keeping functions for balloon network 204. For example,the central control system 200 may input state information that isreceived from balloons 206A to 206I to an energy function, which mayeffectively compare the current topology of the network to a desiredtopology, and provide a vector indicating a direction of movement (ifany) for each balloon, such that the balloons can move towards thedesired topology. Further, the central control system 200 may usealtitudinal wind data to determine respective altitude adjustments thatmay be initiated to achieve the movement towards the desired topology.The central control system 200 may provide and/or support otherstation-keeping functions as well.

FIG. 2 shows a distributed arrangement that provides centralizedcontrol, with regional control systems 202A to 202C coordinatingcommunications between a central control system 200 and a balloonnetwork 204. Such an arrangement may be useful to provide centralizedcontrol for a balloon network that covers a large geographic area. Insome embodiments, a distributed arrangement may even support a globalballoon network that provides coverage everywhere on earth. Adistributed-control arrangement may be useful in other scenarios aswell.

Further, it should be understood that other control-system arrangementsare possible. For instance, some implementations may involve acentralized control system with additional layers (e.g., sub-regionsystems within the regional control systems, and so on). Alternatively,control functions may be provided by a single, centralized, controlsystem, which communicates directly with one or more downlink balloons.

In some embodiments, control and coordination of a balloon network maybe shared between a ground-based control system and a balloon network tovarying degrees, depending upon the implementation. In fact, in someembodiments, there may be no ground-based control systems. In such anembodiment, all network control and coordination functions may beimplemented by the balloon network itself. For example, certain balloonsmay be configured to provide the same or similar functions as centralcontrol system 200 and/or regional control systems 202A to 202C. Otherexamples are also possible.

Furthermore, control and/or coordination of a balloon network may bede-centralized. For example, each balloon may relay state informationto, and receive state information from, some or all nearby balloons.Further, each balloon may relay state information that it receives froma nearby balloon to some or all nearby balloons. When all balloons doso, each balloon may be able to individually determine the state of thenetwork. Alternatively, certain balloons may be designated to aggregatestate information for a given portion of the network. These balloons maythen coordinate with one another to determine the overall state of thenetwork.

Further, in some aspects, control of a balloon network may be partiallyor entirely localized, such that it is not dependent on the overallstate of the network. For example, individual balloons may implementstation-keeping functions that only consider nearby balloons. Inparticular, each balloon may implement an energy function that takesinto account its own state and the states of nearby balloons. The energyfunction may be used to maintain and/or move to a desired position withrespect to the nearby balloons, without necessarily considering thedesired topology of the network as a whole. However, when each balloonimplements such an energy function for station-keeping, the balloonnetwork as a whole may maintain and/or move towards the desiredtopology.

As an example, each balloon A may receive distance information d₁ tod_(k) with respect to each of its k closest neighbors. Each balloon Amay treat the distance to each of the k balloons as a virtual springwith vector representing a force direction from the first nearestneighbor balloon i toward balloon A and with force magnitudeproportional to d_(i). The balloon A may sum each of the k vectors andthe summed vector is the vector of desired movement for balloon A.Balloon A may attempt to achieve the desired movement by controlling itsaltitude.

Alternatively, this process could assign the force magnitude of each ofthese virtual forces equal to d_(i)×d_(I), wherein d_(I) is proportionalto the distance to the second nearest neighbor balloon, for instance.

In another embodiment, a similar process could be carried out for eachof the k balloons and each balloon could transmit its planned movementvector to its local neighbors. Further rounds of refinement to eachballoon's planned movement vector can be made based on the correspondingplanned movement vectors of its neighbors. It will be evident to thoseskilled in the art that other algorithms could be implemented in aballoon network in an effort to maintain a set of balloon spacingsand/or a specific network capacity level over a given geographiclocation.

D. Example Balloon Configuration

Various types of balloon systems may be incorporated in an exampleballoon network. As noted above, an example embodiment may utilizehigh-altitude balloons, which could typically operate in an altituderange between 17 km and 25 km. FIG. 3 shows a high-altitude balloon 300,according to an example embodiment. As shown, the balloon 300 includesan envelope 302, a skirt 304, a payload 306, and a cut-down system 308,which is attached between the balloon 302 and payload 304.

The envelope 302 and skirt 304 may take various forms, which may becurrently well-known or yet to be developed. For instance, the envelope302 and/or skirt 304 may be made of a highly-flexible latex material ormay be made of a rubber material such as chloroprene. In one exampleembodiment, the envelope and/or skirt could be made of metalized Mylaror BoPet. Other materials are also possible. Further, the shape and sizeof the envelope 302 and skirt 304 may vary depending upon the particularimplementation. Additionally, the envelope 302 may be filled withvarious different types of gases, such as helium and/or hydrogen. Othertypes of gases are possible as well.

The payload 306 of balloon 300 may include a processor 312 and on-boarddata storage, such as memory 314. The memory 314 may take the form of orinclude a non-transitory computer-readable medium. The non-transitorycomputer-readable medium may have instructions stored thereon, which canbe accessed and executed by the processor 312 in order to carry out theballoon functions described herein.

The payload 306 of balloon 300 may also include various other types ofequipment and systems to provide a number of different functions. Forexample, payload 306 may include optical communication system 316, whichmay transmit optical signals via an ultra-bright LED system 320, andwhich may receive optical signals via an optical-communication receiver322 (e.g., a photodiode receiver system). Further, payload 306 mayinclude an RF communication system 318, which may transmit and/orreceive RF communications via an antenna system 340.

The payload 306 may also include a power supply 326 to supply power tothe various components of balloon 300. The power supply 326 couldinclude a rechargeable battery. In other embodiments, the power supply326 may additionally or alternatively represent other means known in theart for producing power. In addition, the balloon 300 may include asolar power generation system 327. The solar power generation system 327may include solar panels and could be used to generate power thatcharges and/or is distributed by power supply 326.

Further, payload 306 may include various types of other systems andsensors 328. For example, payload 306 may include one or more videoand/or still cameras, a GPS system, various motion sensors (e.g.,accelerometers, magnetometers, gyroscopes, and/or compasses), and/orvarious sensors for capturing environmental data. Further, some or allof the components within payload 306 may be implemented in a radiosondeor other probe, which may be operable to measure, e.g., pressure,altitude, geographical position (latitude and longitude), temperature,relative humidity, and/or wind speed and/or wind direction, among otherinformation.

As noted, balloon 300 includes an ultra-bright LED system 320 forfree-space optical communication with other balloons. As such, opticalcommunication system 316 may be configured to transmit a free-spaceoptical signal by modulating the ultra-bright LED system 320. Theoptical communication system 316 may be implemented with mechanicalsystems and/or with hardware, firmware, and/or software. Generally, themanner in which an optical communication system is implemented may vary,depending upon the particular application. The optical communicationsystem 316 and other associated components are described in furtherdetail below.

In a further aspect, balloon 300 may be configured for altitude control.For instance, balloon 300 may include a variable buoyancy system, whichis configured to change the altitude of the balloon 300 by adjusting thevolume and/or density of the gas in the balloon 300. A variable buoyancysystem may take various forms, and may generally be any system that canchange the volume and/or density of gas in the envelope 302.

In an example embodiment, a variable buoyancy system may include abladder 310 that is located inside of envelope 302. The bladder 310could be an elastic chamber configured to hold liquid and/or gas.Alternatively, the bladder 310 need not be inside the envelope 302. Forinstance, the bladder 310 could be a ridged bladder that could bepressurized well beyond neutral pressure. The buoyancy of the balloon300 may therefore be adjusted by changing the density and/or volume ofthe gas in bladder 310. To change the density in bladder 310, balloon300 may be configured with systems and/or mechanisms for heating and/orcooling the gas in bladder 310. Further, to change the volume, balloon300 may include pumps or other features for adding gas to and/orremoving gas from bladder 310. Additionally or alternatively, to changethe volume of bladder 310, balloon 300 may include release valves orother features that are controllable to allow gas to escape from bladder310. Multiple bladders 310 could be implemented within the scope of thisdisclosure. For instance, multiple bladders could be used to improveballoon stability.

In an example embodiment, the envelope 302 could be filled with helium,hydrogen or other lighter-than-air material. The envelope 302 could thushave an associated upward buoyancy force. In such an embodiment, air inthe bladder 310 could be considered a ballast tank that may have anassociated downward ballast force. In another example embodiment, theamount of air in the bladder 310 could be changed by pumping air (e.g.,with an air compressor) into and out of the bladder 310. By adjustingthe amount of air in the bladder 310, the ballast force may becontrolled. In some embodiments, the ballast force may be used, in part,to counteract the buoyancy force and/or to provide altitude stability.

In another embodiment, a portion of the envelope 302 could be a firstcolor (e.g., black) and/or a first material from the rest of envelope302, which may have a second color (e.g., white) and/or a secondmaterial. For instance, the first color and/or first material could beconfigured to absorb a relatively larger amount of solar energy than thesecond color and/or second material. Thus, rotating the balloon suchthat the first material is facing the sun may act to heat the envelope302 as well as the gas inside the envelope 302. In this way, thebuoyancy force of the envelope 302 may increase. By rotating the balloonsuch that the second material is facing the sun, the temperature of gasinside the envelope 302 may decrease. Accordingly, the buoyancy forcemay decrease. In this manner, the buoyancy force of the balloon could beadjusted by changing the temperature/volume of gas inside the envelope302 using solar energy. In such embodiments, it is possible that abladder 310 may not be a necessary element of balloon 300. Thus, variouscontemplated embodiments, altitude control of balloon 300 could beachieved, at least in part, by adjusting the rotation of the balloonwith respect to the sun.

Further, a balloon 306 may include a navigation system (not shown). Thenavigation system may implement station-keeping functions to maintainposition within and/or move to a position in accordance with a desiredtopology. In particular, the navigation system may use altitudinal winddata to determine altitudinal adjustments that result in the windcarrying the balloon in a desired direction and/or to a desiredlocation. The altitude-control system may then make adjustments to thedensity of the balloon chamber in order to effectuate the determinedaltitudinal adjustments and cause the balloon to move laterally to thedesired direction and/or to the desired location. Alternatively, thealtitudinal adjustments may be computed by a ground-based orsatellite-based control system and communicated to the high-altitudeballoon. In other embodiments, specific balloons in a heterogeneousballoon network may be configured to compute altitudinal adjustments forother balloons and transmit the adjustment commands to those otherballoons.

As shown, the balloon 300 also includes a cut-down system 308. Thecut-down system 308 may be activated to separate the payload 306 fromthe rest of balloon 300. The cut-down system 308 could include at leasta connector, such as a balloon cord, connecting the payload 306 to theenvelope 302 and a means for severing the connector (e.g., a shearingmechanism or an explosive bolt). In an example embodiment, the ballooncord, which may be nylon, is wrapped with a nichrome wire. A currentcould be passed through the nichrome wire to heat it and melt the cord,cutting the payload 306 away from the envelope 302.

The cut-down functionality may be utilized anytime the payload needs tobe accessed on the ground, such as when it is time to remove balloon 300from a balloon network, when maintenance is due on systems withinpayload 306, and/or when power supply 326 needs to be recharged orreplaced.

In an alternative arrangement, a balloon may not include a cut-downsystem. In such an arrangement, the navigation system may be operable tonavigate the balloon to a landing location, in the event the balloonneeds to be removed from the network and/or accessed on the ground.Further, it is possible that a balloon may be self-sustaining, such thatit does not need to be accessed on the ground. In other embodiments,in-flight balloons may be serviced by specific service balloons oranother type of aerostat or aircraft.

III. BALLOON NETWORK WITH OPTICAL AND RF LINKS BETWEEN BALLOONS

In some embodiments, a high-altitude-balloon network may includesuper-node balloons, which communicate with one another via opticallinks, as well as sub-node balloons, which communicate with super-nodeballoons via RF links. Generally, the optical links between super-nodeballoons may be configured to have more bandwidth than the RF linksbetween super-node and sub-node balloons. As such, the super-nodeballoons may function as the backbone of the balloon network, while thesub-nodes may provide sub-networks providing access to the balloonnetwork and/or connecting the balloon network to other networks.

FIG. 4 is a simplified block diagram illustrating a balloon network thatincludes super-nodes and sub-nodes, according to an example embodiment.More specifically, FIG. 4 illustrates a portion of a balloon network 400that includes super-node balloons 410A to 410C (which may also bereferred to as “super-nodes”) and sub-node balloons 420 (which may alsobe referred to as “sub-nodes”).

Each super-node balloon 410A to 410C may include a free-space opticalcommunication system that is operable for packet-data communication withother super-node balloons. As such, super-nodes may communicate with oneanother over optical links. For example, in the illustrated embodiment,super-node 410A and super-node 401B may communicate with one anotherover optical link 402, and super-node 410A and super-node 401C maycommunicate with one another over optical link 404.

Each of the sub-node balloons 420 may include a radio-frequency (RF)communication system that is operable for packet-data communication overone or more RF air interfaces. Accordingly, each super-node balloon 410Ato 410C may include an RF communication system that is operable to routepacket data to one or more nearby sub-node balloons 420. When a sub-node420 receives packet data from a super-node 410, the sub-node 420 may useits RF communication system to route the packet data to a ground-basedstation 430 via an RF air interface.

As noted above, the super-nodes 410A to 410C may be configured for bothlonger-range optical communication with other super-nodes andshorter-range RF communications with nearby sub-nodes 420. For example,super-nodes 410A to 410C may use using high-power or ultra-bright LEDsto transmit optical signals over optical links 402, 404, which mayextend for as much as 100 miles, or possibly more. Configured as such,the super-nodes 410A to 410C may be capable of optical communications atspeeds of 10 to 50 GB/sec or more.

A larger number of balloons may be configured as sub-nodes, which maycommunicate with ground-based Internet nodes at speeds on the order ofapproximately 10 MB/sec. Configured as such, the sub-nodes 420 may beconfigured to connect the super-nodes 410 to other networks and/or toclient devices.

Note that the data speeds and link distances described in the aboveexample and elsewhere herein are provided for illustrative purposes andshould not be considered limiting; other data speeds and link distancesare possible. Further, note that client devices may also be configuredto connect with other types of balloon networks, such as the balloonnetworks shown in FIGS. 1 and 2.

In some embodiments, the super-nodes 410A to 410C may function as a corenetwork, while the sub-nodes 420 function as one or more access networksto the core network. In such an embodiment, some or all of the sub-nodes420 may also function as gateways to the balloon network 400.Additionally or alternatively, some or all of ground-based stations 430may function as gateways to the balloon network 400.

Since balloons in an exemplary hierarchical balloon network maycollectively function as a mesh network, routing may involvedetermining: (a) a path between a ground-based station and a sourcesuper-node balloon data via one or more sub-node balloons, (b) a pathbetween the source super-node balloon and a target super-node balloon,which may be a single hop or may be a multi-hop path via one or moreother super-node balloons, and (c) a path between the target super-nodeballoon and a target ground-based station via one or more sub-nodeballoons.

To provide a specific example of routing in a hierarchical balloonnetwork, consider an implementation where ground-based station 430E isan access point, and ground-based station 430F is a gateway betweenhierarchical balloon network 400 and the Internet 460. As such, a firstclient device 440 may connect to the Internet 460 via ground-basedstation 430E and balloon network 400. Further, a second client device450 may connect to the Internet 460, and thus may be connected to theballoon network 400 via ground-based station 430H.

In this scenario, the first client device 440 may send data to thesecond client device 450. When this occurs, data from client device 440may be routed from ground-based station 430E to super-node 410C viasub-nodes 420E and 420F.

Further, routing may involve path determination through the backbonenetwork of super-nodes to determine, e.g., a path from the sourcesuper-node to the target super-node. Thus, when data sent from the firstclient device 440 to the second client device 450 is received atsuper-node balloon 410C, a lightpath may be determined to the targetsuper-node balloon 410B. In the illustrated state of balloon network400, the determined lightpath may include optical links 402 and 404.

Various mesh routing techniques may be applied in order to route datathrough the super-nodes to a target super-node. (The target super-nodeis typically a super-node balloon with an RF link to a sub-node that isserving the target ground-based station.) For example, routing throughthe backbone network formed by the super-node balloons may beaccomplished in a similar manner as described in reference to theballoon networks illustrated in FIGS. 1 and 2. In other words, thesuper-nodes may be thought of as a distinct network for purposes ofrouting, such that paths between the super-node balloons andground-based stations via sub-node balloons may be determined separatelyfrom paths through the super-node balloons.

Further, as the super-nodes locations may change relative to the groundand relative to one another, the topology of the balloon network maychange over time. Accordingly, the routing technique may take intoaccount the current network topology.

In another aspect, note that in the above example, there is only onepath between ground-based station 430E and super-node 410C (i.e., themulti-hop path with RF links connecting ground-based station 430E,sub-node 420E, and sub-node 420F). As such, there is no pathdetermination needed as there is only one path between the ground-basedstation and the source super-node balloon. However, it is possible thatthere may be multiple paths between a ground-based station and a sourcesuper-node balloon. In this case, routing may involve path determinationbetween a ground-based station and a source super-node balloon.

For example, when the second client device 450 sends data to the firstclient device 440 via Internet 460, there are two paths betweenground-based station 430F and super-node 410B (e.g., via sub-node 420Hor sub-node 420O). As such, routing may involve path determination toselect between the available paths. Alternatively, a flooding techniquemay be used in which data is sent via all paths between a ground-basedstation and a source super-node.

In a further aspect, note that similar principals apply when routingdata between a target super-node balloon and a target ground basedstation, depending upon the topology of the one or more sub-nodeballoons connecting the target super-node balloon and a target groundbased station.

IV. CLIENT-DEVICE LINK BETWEEN BALLOON NETWORK AND TERRESTRIAL NETWORK

As noted above, client devices may be configured to communicate withballoons in a balloon network. In an example embodiment, a client devicemay be configured to provide a data link between a balloon network and aterrestrial data network, such as the Internet. Further, a client devicemay report and/or receive compensation for data that is relayed betweenthe balloon network and the terrestrial data network.

FIG. 5A is a block diagram illustrating a client device that isconfigured to provide a data link between a balloon network and aterrestrial data network. Specifically, in the illustrated example,client device 500 is configured to provide a data link between balloonnetwork 502, which includes balloons 510A to 501G, and the Internet 504.FIG. 5A also shows an access point 506 and a number of other clientdevices 508A to 508D. Client devices, such as client devices 500 and508A to 508D may various types of computing devices via which end userscan engage in data communications, such as personal computers, laptopcomputers, tablet computers, cellular phones, and/or wearable computers,among other examples.

Both client device 508D and client device 500 are configured to engagein data communications via balloon network 502. Specifically, clientdevice 500 is operable to communicate via balloon network 502 over alink 512 to balloon 510A. Similarly, client device 508 is operable tocommunicate via balloon network 502 over a link 514 to balloon 510B.

Further, client device 500 is operable to communicate via the Internet504 via a connection to access point 506. Configured as such, clientdevice may be operable to both: (a) engage in data communications via aballoon network 502 and/or via Internet 504 and (b) provide a data linkbetween balloon network 502 and Internet 504. Thus, client device 500may operate as a typical client device, in that client device 500includes or provides access to user interfaces via which a user could,e.g., engage in a phone call, surf the Internet, send e-mail, etc.However, client device 500 is also configured to provide aninter-network link, by allowing some or all of its bandwidth over link512 to be utilized for transfer of data intended for other clientdevices between Internet 504 and balloon network 502.

For example, in order to send data to client device 508C, client device508D may transmit data over link 514 to balloon 510B, which may thenroute the data through balloon network 502 to balloon 510A. The data maythen be routed the data from Balloon 510A over link 512 to client device500, then to access point 506, and then via Internet 504 to clientdevice 508C. In a similar manner, data sent by client 508C to clientdevice 508D may be routed from Internet 504 to balloon 510A via theInternet 504 and access point 506, and then through balloon network 502to balloon 510B, which can send the data to client device 508D. Further,note that client device 500 could facilitate communication via balloonnetwork 502 for another client device which connects to the same accesspoint 506 as client device 500, such as client device 508A, directlythrough the access point 506 (e.g., without necessarily having thecommunication routed through Internet 504).

In an example embodiment, links between ground-based client devices,such as client devices 500 and 508D, and the balloon network 502, suchas links 512 and 514, may be RF links and/or wireless optical links.Accordingly, various RF air-interface protocols and/or opticalcommunication protocols may be used for communications between balloonnetwork 502 and client devices 500 and 508D over links 512 and 514. Forexample, balloon network 502 and client devices 500 and 508D may use anLTE protocol to communicate over links 512 and 514. Other RF protocolsand/or optical protocols are also possible.

When a client device 500 provides an inter-network link, theair-interface link 512 may be implemented in various ways. For example,two separate communication channels 512A and 512B may be establishedbetween client device 500 and balloon 510A, one communication channel512A for the device's own communications (e.g., data communicationsdirected to or originating from client device 500), and onecommunication channel 512B for communications via the inter-network link(e.g., communications that originate from a client device, and aredirected to a client device, other than client device 500).

Accordingly, client device 500 may be configured to provide aninter-network link by establishing a separate, dedicated communicationchannel for inter-network data communications directed to other clientdevices. As such, a client device may operate as a typical client devicewith respect to data that is sent and received via the communicationchannel 512A dedicated to the device's own communications, and mayfunction as, e.g., a router, bridge, or repeater with respect to datathat is sent and received via the communication channel 512B that isdesignated for an inter-network link.

Alternatively, there may not be a dedicated inter-network communicationchannel between a client device and a balloon network. Instead, clientdevice 500 may simply include routing or switching functionality thatanalyzes, e.g., metadata from data packets, to determine whether packetsreceived from balloon network 502 or access point 506 are part of itsown communications or are directed to another client device, and toprocess and/or relay packets accordingly.

In a further aspect, access point 506 may take various forms. In anexample embodiment, access point 506 may be a WiFi access point thatoperates according to an IEEE 802.11 protocol. As another example,access point 506 could be a base station in a cellular data network. Aclient device may also utilize other protocols for communications withan access point and/or other nodes in a terrestrial data network (e.g.,a network gateway). Further, client device may provide an inter-networklink via multiple terrestrial data networks. For example, a clientdevice could provide an inter-network link between a balloon network andthe Internet via a local WiFi network. Other examples are also possible.

In another aspect, the link between client device 500 and access point506 may take various forms. For example, the link between a clientdevice and an access point may include two separate communicationchannels, with a dedicated channel for an inter-network link.Alternatively, both inter-network communications directed to otherclient devices, and the device's own communications may be conducted viathe same communication channel, and client device 500 may be configuredto distinguish between data directed to other client devices and datafrom its own communications.

In some embodiments, client device 500 may provide an inter-network linkby functioning as a repeater, in addition to providing its standardclient-device functionality. In such an embodiment, client device 500may be configured simply to forward data received from access point 506to balloon 510A, and vice versa.

In some embodiments, client device 500 may provide an inter-network linkby operating as a router, in addition to providing its standardclient-device functionality. For example, client device 500 may beconnected to access point 506 via a WiFi connection and connected toballoon network 502 via an LTE connection to balloon 510A. As such, whena data packet is received at client device 500, the client device 500may read address information in the packet to determine its ultimatedestination. Then, if the packet is intended for another client device,it may use information from its own routing table or routing policy (ora routing table or routing policy that is otherwise accessible to thedevice), and send the packet to the next network on its path (e.g.,Internet 504 via access point 506 or balloon network 502).

In a further aspect, a client device may format and/or process datastreams to provide an inter-network link between a balloon network and aterrestrial network that utilize different communication protocols. Todo so, a client device 500 may provide an inter-network link byoperating as a gateway, which provides an interface between balloonnetwork 502 and a terrestrial data network. Configured as such, clientdevice 500 may implement protocol translation/mapping to performprotocol conversions between balloon-network protocols andterrestrial-network protocols. As a specific example, client device 500may receive data over a WiFi connection with access point 506, which isthus formatted according to an 802.11 protocol, and re-format thereceived data for transmission over an LTE connection with balloon 510A,and vice versa. Other examples are also possible.

In an example embodiment, a client device may operate as a synchronousinter-network link, which sends data on as it is received (possibly witha some type of buffer if an incoming data rate exceeds the bandwidth onthe outbound link). In other embodiments, a client device may functionas an asynchronous inter-network link. In particular, the client devicemay store data that is received from the balloon network or from theterrestrial data network, and wait until a later time when the clientdevice is not utilizing its available bandwidth for its owncommunications, before sending the stored data on to the terrestrialdata or the balloon network, respectively.

FIG. 5A also shows an accounting system 516. In an example embodiment,client device 500 may be configured to notify accounting system 516 ofits operation as an inter-network link, such that a user-accountassociated with client device 500 can receive credit accordingly.Further, in the illustrated configuration, accounting system 516 isaccessible to client device 500 via the Internet 504. However, a clientdevice may additionally or alternatively communicate with an accountingsystem via other networks, without departing from the scope of theinvention.

In some implementations, accounting system 516 may update a user-accountto reflect monetary credit based on the operation of a correspondingclient device as an inter-network link. For example, accounting system516 could determine a dollar amount based on an amount of time for whichclient device 500 provided an inter-network link, and credit thedetermined dollar amount to the user-account corresponding to clientdevice 500 (e.g., a user-account established by the owner of clientdevice 500). As another example, accounting system 516 could determine adollar amount based on the amount of data that was relayed betweenballoon network 502 and access point 506 via the inter-network linkprovided by client device 500. As a specific example, the dollar amountfor a data communication could be based on a predetermineddollar-per-kilobyte ($/kB) value. Other examples are also possible.

Accounting system 516 could also credit a user-account with non-monetarycredit based on the operation of a corresponding client device as aninter-network link. For example, accounting system 516 may award acertain number of points per unit of time that client device 500 isavailable as an inter-network link between balloon network 502 andInternet 504, or per unit of data (e.g., points per kB) that is sentand/or received by client device 500 due to the client device'soperation as an inter-network link. Such points could then be redeemedfor, e.g., goods or services. Other non-monetary credits are alsopossible.

FIG. 5A also shows an inter-network bandwidth marketplace 518, which mayfacilitate transactions for inter-network links between client-devices500, 508A, 508B, and/or 508C, and access point 506 and/or other nodes ina terrestrial data network such as Internet 504. Inter-network bandwidthmarketplace 518 will be described in greater detail in reference to FIG.5B.

The arrangement shown in FIG. 5A is provided as an example, and is notintended to be limiting. Other arrangements of the illustratedcomponents and/or other components are possible.

V. ILLUSTRATIVE MARKETPLACE SYSTEMS

FIG. 5B is a simplified block diagram showing more detail of theinter-network bandwidth marketplace 518 that is also shown in FIG. 5A.As shown, the inter-network bandwidth marketplace 518 includespurchasing-agent modules 520A to 520C and selling-agent modules 522A and522B. Further, the inter-network bandwidth marketplace 518 may includemarketplace system 523, which is a computing system configured tofacilitate communications and/or transactions between selling-agentmodules 522A and 522B, as sellers of inter-network bandwidth (i.e., ofinter-network links), and purchasing-agent modules 520A to 520C, asbuyers of inter-network bandwidth.

A given purchasing-agent module 520A to 520C may take the form of orinclude software, hardware, and/or firmware that is executable toprovide the purchasing-agent functionality described herein. Forexample, given purchasing-agent module 520A to 520C may be executableprogram instructions stored on a non-transitory medium on a serversystem that is part of or in communication with inter-network bandwidthmarketplace 518. A purchasing-agent module could also be implemented ona computing device that is separate from and configured to communicatewith inter-network bandwidth marketplace 518.

A given purchasing-agent module 520A to 520C may be implemented onbehalf of a service provider and/or network operator in order to detectwhen there is a need for additional inter-network bandwidth andresponsively purchase bandwidth over available inter-network links. Inparticular, a purchasing-agent module 520A to 520C may be configured to:(i) determine when a demand exists for inter-network bandwidth between aballoon network and a terrestrial data network, (ii) determine one ormore offers to provide an inter-network link that increases theinter-network bandwidth between the balloon network and the terrestrialdata network, wherein each offer is associated with a correspondingclient device, (iii) based at least in part on a comparison of: (a) thedemand for inter-network bandwidth and (b) the one or more offers toprovide an inter-network link, select one or more of the offers toprovide an inter-network link; and (iv) initiate a process to establishan inter-network link at each client device that corresponds to one ofthe one or more selected offers.

In a further aspect, a service provider and/or a network operator of aballoon network, a service provider and/or a network operator of aterrestrial network, or another entity, may be able to set parametersfor a purchasing-agent module to buy inter-network bandwidth on theirbehalf. For example, a service provider or network operator could setparameters to indicate how much they are willing to pay to reducenetwork congestion by a certain amount, how much they are willing to payto reduce latency by a certain amount, and so on. The particularparameters that may be set for a purchasing-agent module may vary,depending upon the particular implementation.

A given selling-agent module 522A or 522B may take the form of orinclude software, hardware, and/or firmware that is executable toprovide the selling-agent functionality described herein. For example,given selling-agent module 522A or 522B may take the form of executableprogram instructions stored on a non-transitory medium on a serversystem that is part of or in communication with inter-network bandwidthmarketplace 518.

Further, a given selling-agent module 522A or 522B may be implemented onbehalf of a client device 524A or 524B in order to determine when theclient device has bandwidth available for an inter-network link, todetermine offer pricing for the available bandwidth, and/or to offer theavailable bandwidth via inter-network bandwidth marketplace 518. Aselling-agent module could also be implemented by a client device thatis configured to communicate with inter-network bandwidth marketplace518, such as client device 526.

In a further aspect, a given selling selling-agent module 522A or 522Bshould be understood to be a module that at least partially automatesthe process of detecting available bandwidth and offering aninter-network link, on behalf of a client device 524A or 524B. However,it is also contemplated that a client device, such as client device 526,may be configured to allow a user to manually offer bandwidth for aninter-network link on inter-network bandwidth marketplace 518, withoutusing an automated selling-agent module 524A or 524B. Such a clientdevice 526 may be said to “directly” communicate an offer tointer-network bandwidth marketplace 518. In this context, a “direct”communication should be understood to mean that the client device 526sends an offer for an inter-network link to the inter-network bandwidthmarketplace 518 without use of a selling-agent module 522A or 522B;however, a direct communication in this context does not necessarilymean that there is a direct connection between the client device 526 andinter-network bandwidth marketplace 518.

In a further aspect, a user for a client device may be able to setparameters for a selling-agent module to offer and sell an inter-networklink on their behalf. For example, a user could set parameters toindicate an amount of bandwidth that is desired for their own use, suchthat excess bandwidth may be offered for an inter-network link. Further,a user might set parameters to indicate a desired amount of bandwidthfor specific activities. For example, a user might set parameters suchthat more bandwidth is reserved for their own use when they are watchinga streaming video, than when they are viewing a website. Yet further, auser might set parameters that indicate the timing with which aninter-network link should be offered via their client device. As anexample, a user might set parameters such that an inter-network link isonly offered late at night and/or early in the morning, when the user istypically sleeping. Other examples are also possible.

In a further aspect, inter-network bandwidth marketplace 518 may includeor have access to an inter-network link database 528. Whenever an offerfor an inter-network link is received from a selling-agent module 522Aor 522B or directly from a client device 526, inter-network linkmarketplace 518 may create a record of the offer in inter-network linkdatabase 528. The record for a given offer may include data such as: (a)the client device that has offered the inter-network link, (b) theamount of bandwidth offered, (c) pricing information for the bandwidth,(d) location information for the client device, (e) information relatingto a particular balloon or balloons and/or to a particularterrestrial-network node or nodes between which the client device iscapable of providing an inter-network link, and/or (f) other datarelating to the offer. Further, when an offer is selected and theoffered bandwidth is being partially or entirely used for aninter-network link, the inter-network link database 528 may be updatedto reflect that the offer is no longer available or to reflect a reducedamount of available bandwidth (in the case that only part of the offeredbandwidth is selected for use as an inter-network link).

The arrangement shown in FIG. 5B is provided as an example, and is notintended to be limiting. Other arrangements of the illustratedcomponents and/or other components are possible.

VI. ILLUSTRATIVE METHODS

A. Purchasing-Agent Methods

FIG. 6A is a flow chart illustrating a computer-implemented method,according to an example embodiment. Example methods, such as method 600of FIG. 6A, may be carried out by a computing device that is part of orassociated with a marketplace for inter-network bandwidth. Forsimplicity, method 600 is described as being carried out by apurchasing-agent system. A purchasing-agent system may be any computingdevice or combination of computing devices that implementspurchasing-agent functionality, such as a computing system thatimplements one of the purchasing agent modules 520A to 520C shown inFIG. 5B, for example.

As shown by block 602 of FIG. 6A, method 600 involves a purchasing-agentsystem determining a demand for inter-network bandwidth between aballoon network and a terrestrial data network. The purchasing-agentsystem then determines one or more offers to provide an inter-networklink, which may increase the inter-network bandwidth between the balloonnetwork and the terrestrial data network, where each offer is associatedwith a corresponding client device, as shown by block 604. Then, basedat least in part on a comparison of: (a) the demand for inter-networkbandwidth and (b) the one or more offers to provide an inter-networklink, the purchasing-agent system selects one or more of the offers toprovide an inter-network link, as shown by block 606. Thepurchasing-agent system may then initiate a process to establish aninter-network link at each client device that corresponds to one of theone or more selected offers, as shown by block 608.

In a further aspect, a purchasing-agent system may implement an examplemethod in a reactive manner, in a proactive manner, or in a bothreactive and proactive manner. For instance, a purchasing-agent systemcould reactively implement method 600 in order to reactively detect whena demand for inter-network bandwidth exists due to current usage of aballoon and/or a terrestrial network, and responsively purchaseinter-network links to help satisfy the demand. Additionally oralternatively, a purchasing-agent system could proactively detect theexpected demand for inter-network bandwidth at some time in the future,and pre-emptively purchase inter-network links to help meet the expecteddemand.

i. Demand for Inter-Network Bandwidth

At block 602, various techniques may be used to determine the demand forinter-network bandwidth between the balloon network and the terrestrialdata network.

In an example embodiment, the demand may be determined numerically bydetermining an amount of additional bandwidth that is desired andpricing information for the desired bandwidth (i.e., bid pricing). Inparticular, the amount of bandwidth demand and/or the bid pricing forthe bandwidth may be determined based on factors such as: (a) resourceutilization via an existing inter-network link, (b) expected change inlatency for traffic through the balloon network and/or through theterrestrial data network, (c) expected change in network capacity of theballoon network and/or the terrestrial data network, (d) one or morefactors related to the existing or potential offers to provideinter-network links (i.e., client devices that are or could be availableto provide inter-network links), and/or (e) factors related to clientdevices that are currently utilizing or would be expected to utilizeinter-network bandwidth, among other possibilities.

In some embodiments, a purchasing-agent system may consider the resourceutilization of existing inter-network bandwidth (e.g., between one ormore existing inter-network links), and, if utilization is high,determine that more bandwidth is desired. As an example, if more than athreshold percentage of inter-network bandwidth between a given balloonand a given terrestrial-network node is being used, then thepurchasing-agent system may determine that one or more inter-networklinks between the given balloon and the given terrestrial-network node(or to other nearby terrestrial-network nodes) are desirable. Further,the amount of additional bandwidth may be determined based on thepercentage of bandwidth currently in use, with the amount being higher,the closer the existing inter-network bandwidth is to being fullyutilized. Additionally or alternatively, the amount of additionalbandwidth may be determined based on a buffer size or rate the buffersize is increasing at the given balloon or at the giventerrestrial-network node, with the desired amount increasingproportionally to the size of the buffer and/or to the rate the buffersize is increasing.

Similarly, pricing information may be determined based on resourceutilization of existing inter-network bandwidth. For instance, the priceper unit of bandwidth that a network operator is willing to pay mayincrease as the percentage of existing inter-network bandwidth that isin use increase. Similarly, the price per unit of bandwidth that anetwork operator is willing to pay may increase proportionally to thesize of a buffer and/or to a rate the buffer size is increasing at agiven balloon and/or at a given terrestrial-network node.

In some embodiments, a purchasing-agent system may determine an expectedchange in latency for the balloon network and/or for the terrestrialnetwork, which is expected to result from a certain amount of additionalinter-network bandwidth. The purchasing-agent system may then use theexpected latency change to help determine how much additional bandwidthis needed or desired, and/or to help determine bid pricing for suchadditional bandwidth.

At block 702, the function of determining the demand may involvedetermining pricing information (e.g., bid pricing) for the desiredinter-network bandwidth. For example, a purchasing-agent system maydetermine how much additional bandwidth is worth to the operator of aballoon network and/or to the operator of a terrestrial data network(e.g., how much the respective operator is willing to pay for theadditional inter-network bandwidth). A determination of how muchadditional bandwidth is worth to a network operator may be based onvarious factors.

In an example embodiment, pricing information may be determined based onsome or all of the same factors that are considered in determining theamount of bandwidth that is desired. Further, in some embodiments, thefunctions of determining the demand for additional inter-networkbandwidth and determining bid pricing for the additional inter-networkbandwidth may be related.

As a specific example, a purchasing-agent system could determine, basedon factors such current resource utilization and/or an expectedreduction in latency, that inter-network bandwidth in a certaingeographic area (e.g., between a balloon network and one or moreterrestrial-network nodes in the geographic area) could be beneficial.Further, based on the magnitude of the benefit that is expected, thepurchasing-agent system may determine a value of additionalinter-network bandwidth. For example, the purchasing-agent system mightdetermine that every additional 1 MB/sec of bandwidth is worth $0.10 foreach minute that it is provided. Many other examples are possible.

In some embodiments, rather than determining that a fixed amount ofbandwidth is desired, the purchasing-agent system may determinedifferent bid pricing for multiple “bandwidth-demand levels.” Eachbandwidth-demand level may correspond to a certain amount of bandwidthdemand, and have an associated priority with respect to the otherbandwidth-demand levels, with higher-priority levels having higher bidpricing. In an example embodiment, the bid pricing for eachbandwidth-demand level may be a bid price per unit of bandwidth. Therespective bid price per unit for each bandwidth-demand level may bedetermined based at least in part on the priority of the respectivebandwidth-demand level. More specifically, in an example embodiment,bandwidth-demand levels having a higher priority will be determined tohave higher bid pricing.

As a specific example, a purchasing-agent system might determine thatevery additional 1 MB/sec of bandwidth is worth $0.10 per minute that itis provided, for up to an additional 5 MB/sec of inter-networkbandwidth. However, the purchasing-agent system might value the next 5MB/sec of additional internetwork bandwidth (e.g., bring the totaladditional bandwidth to between 5 MB/sec to 10 MB/sec) at only $0.05 perminute that it is provided, and value any additional bandwidth bring thetotal additional bandwidth to more than 10 MB/sec at only $0.01 perminute that it is provided. Many other examples are also possible.

In a further aspect, a purchasing-agent system could considerseller-side factors when determining the bid pricing for additionalinter-network bandwidth, such as the number of client devices that areavailable to serve as an inter-network link in a particular area orbetween a certain balloon and the terrestrial network (e.g., clientdevices that are within a certain distance from the balloon and a nodeof the terrestrial network, such that an inter-network link is possiblevia each client device). If a number of client devices are all availableto provide inter-network links in an area or location where there isdemand for inter-network bandwidth, then the purchasing-agent system mayconsider these client devices to be interchangeable for this purpose. Assuch, a larger number of devices in an area may be interpreted as alarger supply of potential inter-network bandwidth. Therefore, thepurchasing-agent system may reduce the bid price for additionalinter-network bandwidth as the number client devices available toprovide inter-network links increases.

When a purchasing-agent system relies on the latency change that isexpected to result from adding an inter-network, the expected latencychange may be determined in various ways. For example, a network couldsend a number of “ping” messages to test bandwidth and latency. Further,a client device may be configured so as to allow ping messages to besent between a balloon network and a terrestrial data network, via theclient device, before an inter-network link is established. As such, themeasurements provided by the ping messages may be used to compare thelatency with and without an internetwork link via the client device.Further, as the topology of the balloon network and the available clientdevices changes dynamically, a marketplace system could experimentallyadd or subtract new inter-network links in order to test the incrementalbandwidth and/or latency gains or losses that result. Purchasing-agentsystems could then add an inter-network link via a client device if thevalue of the additional bandwidth and/or reduced latency is determinedto be higher than a threshold value (and possibly also higher than otheravailable inter-network links).

Further, a purchasing-agent system could use data from recently-addedinter-network links to determine the value of adding additionalinter-network links. For example, a purchasing-agent system couldevaluate the first derivative of the value production that has resultedfrom recently added inter-network links in a given area, to estimate thevalue of adding additional inter-network links. (This dynamic processcould happen in parallel in many areas across the balloon-network, sincethe value of adding an inter-network link in one place could be verydifferent than in another place). In this way, the adding (or removing)of inter-network links could be implemented as more of a control systemsprocess, rather than a routing process (as the balloon network mayitself be an ad-hoc network).

The above-described techniques for determining the demand forinter-network bandwidth between the balloon network and the terrestrialdata network are provided as examples. It should be understood thatother techniques are possible.

ii. Determining Client-Device Offers

At block 604, the function of the purchasing-agent system determiningone or more offers to provide an inter-network link may simply involvethe purchasing-agent system receiving or acquiring a list of offers thathave been made by client devices and/or made by selling-agent modules onbehalf of client devices. For instance, a given purchasing-agent module520A to 520C may search inter-network link database 528 for offers toprovide inter-network links. Alternatively, a separate system orcomponent of inter-network marketplace 518 may search for offers onbehalf of a purchasing-agent module 520A to 520C.

Further, a given offer may include: (a) identification information forthe client device that is offering inter-network bandwidth via aninter-network link, (b) an indication of the amount of inter-networkbandwidth that is being offered via the inter-network link, and (c)pricing information for the available bandwidth (e.g., offer pricing),(d) location information for the client device at which theinter-network link is being offered, (e.g., GPS coordinates of theclient device), and/or (e) other data relating to the offer.

In some embodiments, the pricing information for a given offer mayinclude a price for a certain amount bandwidth for a certain amount oftime. For example, an offer might indicate that a client device wouldprovide an inter-network link with 100 kB/sec for ten minutes, for acertain fixed price. Other examples are also possible.

Pricing information for a given offer might also include a price perunit of data that the client device desires for traffic over theinter-network link. For example, an offer might indicate that a clientdevice would provide an inter-network link in exchange for $1.00 per GBof data that is sent over the link. In such an embodiment, the offermight also indicate a bandwidth cap for the inter-network link; 100kB/sec, for instance. Such an offer also might indicate a timeframe thatthe inter-network link could be provided (e.g., for the next ten minutesor for the next hour).

In a further aspect, a given offer to provide an inter-network link mayindicate one or more restrictions on the use of the inter-network link.For example, an offer might indicate certain restrictions on the type ofdata traffic that can be sent via the link. For example, an offer mightindicate that if the offer is accepted and an internetwork link isestablished via the client device, certain undesired content cannot besent via the internetwork link. Other restrictions on the use of aninternetwork link are also possible.

iii. Selecting Offers for Inter-Network Link

As noted, block 606 of method 600 may involve a purchasing-agent systemselecting one or more of the offers to provide an inter-network link. Inan example embodiment, the selection may be based on a comparison of thedemand for inter-network bandwidth, as determined at block 602, and theone or more offers to provide an inter-network link, as determined atblock 604. More specifically, the purchasing-agent system may comparethe bid pricing for additional inter-network bandwidth to offer pricingindicated by one or more offers to provide inter-network links.

In some embodiments, the purchasing-agent system may attempt to selectoffers so as to both meet a specific need for additional inter-networkbandwidth and meet certain price requirements. For example, thepurchasing-agent system may attempt to select offers that (a)collectively have available bandwidth to provide a determined amount ofinter-network bandwidth and (b) have collective offer pricing that meetsthe bid-selection pricing requirements.

To illustrate, a purchasing-agent system may determine that anadditional 5 MB/sec of inter-network bandwidth is desired between one ormore terrestrial-network nodes in a given geographic area and a balloonnetwork, and that the maximum price rate to be paid is $0.10 per minutefor each MB/sec of bandwidth. Accordingly, the purchasing-agent systemmay search for offers from remote devices that are located such thatthey can provide an inter-network link between the terrestrial-networknodes in a given geographic area and the balloon network. Thepurchasing-agent system may then select offers at $0.10 per minute perMB/sec of bandwidth, or less, that will provide inter-network linkshaving 5 MB/sec of bandwidth in total.

In some embodiments, the purchasing-agent system may not have a setamount of additional bandwidth that it needs to acquire. For instance,at block 602, the purchasing-agent system may determine that, for anupcoming thirty-minute period of time, up to 500 kB/sec of additionalinter-network bandwidth is desirable between a balloon network andterrestrial-network nodes in a certain geographic area. Further, thepurchasing-agent system may determine that every additional 1 kB/sec ofbandwidth, up to the 500 kB/sec in total, is worth $0.0002 per minuteduring that thirty-minute period of time. Accordingly, thepurchasing-agent system may search for offers to provide inter-networklinks in the geographic area having offer pricing that is less than orequal to $0.0002 per minute that 1 KB/sec of bandwidth is provided bythe corresponding client device. In this scenario, the purchasing-agentsystem may or may not find offers for the full 500 kB/sec ofinter-network links. For example, the purchasing-agent system might findthree offers for 100 kB/sec at $0.0002 per minute or less. In this case,the purchasing-agent system may select just these three offers, for 300kB/sec of additional inter-network bandwidth. Other examples are alsopossible.

As noted above, in some embodiments a purchasing-agent system maydetermine multiple bandwidth-demand levels for inter-network bandwidth.In such embodiments, the purchasing-agent system may search for offersaccording to the multiple bandwidth-demand levels, selecting offers tomeet the higher-priority demand levels (for which the purchasing-agentsystem is typically willing to pay a higher price) first.

In a further aspect, bids from purchasing-agent systems and/or offersfrom my client devices may include certain required or desired latencyand/or priority parameters. For example, a purchasing-agent system mightbe generally willing to pay $0.01 per mbps of inter-network bandwidth,but might bid more (e.g. $0.02 per mbps) if a client device commits to aresend latency of no more than five milliseconds for an inter-networklink. Similarly, a purchasing-agent system might be willing to pay morefor a commitment from a client device to run balloon-to-backbone routingsoftware at the client device's highest priority setting. As anotherexample, a purchasing-agent system might be willing to pay differentrates for uplink data and downlink bandwidth over an inter-network link.Other examples are also possible.

For instance, in some embodiments, a purchasing-agent system for aballoon network may bid on inter-network bandwidth so as to spread therisk of service loss over a number of inter-network links. As such, thepurchasing-agent system may prefer to use as many ground-based InternetService Providers (ISPs) as feasible. As such, the purchasing agentsystem may be configured to pay more or less to client devices thatconnect via certain ISPs so as to achieve such a balance of use betweenthe ISPs. Similarly, the operator of a balloon network might have anagreement with a certain ISP or ISPs, and therefore be willing to paymore for inter-network links via client devices that are with one of theISPs that the balloon-network operator has an agreement with.

The above-described techniques for selecting offers to meet the need ordesire for additional inter-network bandwidth are provided as examples.It should be understood that other techniques are possible.

iv. Initiating the Process to Establish Internetwork Links

As indicated by block 608 of method 600, a purchasing-agent system mayalso initiate a process to establish an inter-network link via theclient device or client devices that correspond to the selected offer oroffers. Various types of processes are possible, depending upon theimplementation. Further, for purposes of explanation herein, a clientdevice corresponding to one of the selected offers may be referred to asa selected client device.

In an example embodiment, a purchasing-agent system may initiate aprocess in which a message is sent to each selected client device thatindicates that their offer to provide an inter-network link has beenaccepted. The message may indicate the bandwidth that should be providedby the selected client device for the inter-network link, the particularballoon and the particular terrestrial-network node between which theclient device should provide an inter-network link, the time at whichthe client device should make the inter-network link available, the timeat which the client device can tear down the inter-network link, and/orother information.

v. Alternative Implementations

In some embodiments, a purchasing-agent system may actively solicitoffers for inter-network links. For example, FIG. 6B is a flow chartillustrating a computer-implemented method 650, according to an exampleembodiment. For simplicity, method 650 is described as being carried outby a purchasing-agent system.

As shown by block 652 of FIG. 6B, method 650 involves a purchasing-agentsystem determining a demand for inter-network bandwidth between aballoon network and a terrestrial data network. Then, based at least inpart on the demand for inter-network bandwidth, the purchasing-agentsystem may generate at least one request for an inter-network link, asshown by block 654. The purchasing-agent system may then initiate aprocess to make the at least one request for an inter-network linkavailable to one or more client devices via an internetwork marketplace,as shown by block 656. The purchasing-agent system may do so by addingthe request to a database that is accessible to client devices and/or byactively sending a request message to the client devices.

The purchasing-agent system may receive one or more offers to provide aninter-network link in response to a request for an inter-network link.Each received offer may be associated with a corresponding clientdevice. Accordingly, the purchasing-agent system can then proceed toselect one or more offers and establish inter-network links in a similarmanner as described with respect to method 600.

Methods 600 and 650 are described above as being carried out by apurchasing-agent system. When there is little or no competition betweenpurchasers of inter-network bandwidth, such an arrangement may be moredesirable. More specifically, if there are only a few or even just onenetwork operator or service provider trying to purchase inter-networkbandwidth, then it may be desirable for the purchasing-agent system tomatch up bid pricing, which is determined by the purchasing agentsystem, and offer pricing, which is indicated by selling-agent modulesand/or client devices, and then initiate transactions for theinter-network bandwidth.

However, in some embodiments, a separate system or systems within amarketplace for inter-network bandwidth may implement some or all of thefunctions of methods 600 and 650 that are described above as beingcarried out by a purchasing-agent system. For example, if there are anumber of purchasing-agent modules acting on behalf of a number ofdifferent service providers and/or network operators, which are allbidding for inter-network bandwidth in the same geographic area, thenthe purchasing-agent modules may simply determine offer pricing and sendoffers to a marketplace system. The marketplace system may then matchbid pricing from the purchasing-agent modules to offer pricing fromselling-agent modules and/or client devices, and initiate transactionsfor inter-network link. Other implementations are also possible.

B. Selling Agent or Client-Device Method

FIG. 7 is a flow chart illustrating a computer-implemented method,according to an example embodiment. Example methods, such as method 700of FIG. 7, may be carried out by a computing device that implements aselling-agent module, in order to determine when to make an offer for aninter-network link via a certain client device and/or offer pricing forsuch an offer. For simplicity, method 700 is described as being carriedout by a client system. The client system that carries out method 700may be, for example, a client device that implements a selling-agentmodule or a remote system that implements a selling-agent module onbehalf of a client device. Other types of computing devices orcombination of computing devices may also carry out method 700, withoutdeparting from the scope of the invention.

Method 700 involves a client system determining, based at least in parton a measure of bandwidth utilization by a client device, an amount ofavailable bandwidth that the client device can provide for aninter-network link between a balloon network and a terrestrial datanetwork, as shown by block 702. The client system then determinespricing information for the available bandwidth (i.e., offer pricing),as shown by block 704. The client system then sends an offer messagethat indicates an offer to provide an inter-network link between theballoon network and the terrestrial data network, where the offermessage includes: (a) an indication of the amount of available bandwidthand (b) the pricing information for the available bandwidth, as shown byblock 706. In an illustrative arrangement, the client system block 706may involve the client system making the offer available in amarketplace for inter-network bandwidth, such as marketplace 518 shownin FIGS. 5A and 5B.

VII. EXAMPLE SCENARIOS

FIGS. 8A and 8B are simplified illustrations of scenarios in whichmethod 600 and/or method 800 may be implemented. In the scenario 800shown in FIG. 8A, balloons 802A to 802C are operating over a geographicarea 801. Further, terrestrial-network nodes 804A to 804E and clientdevices 806A to 806C are located in the geographic area 801.

Terrestrial-network nodes 804A to 804E are configured to operate asnodes of a terrestrial data network. The terrestrial-network nodes 804Ato 804E may all be of the same type or may be of different types. Eachnode 804A to 804E may be a ground-based station, such as a gateway oraccess point, for example. Terrestrial-network nodes 804A to 804E maytake other forms as well.

Client devices 806A to 806C may take various forms. For example, eachclient device 806A to 806C may be a personal computer, a laptopcomputer, a tablet computer, a mobile phone, a wearable computer, or anyother device that is capable of providing an inter-network link.Further, client devices 806A to 806C may all be of the same type or maybe of different types.

In some instances, the purchasing-agent system may determine the demandfor internetwork bandwidth between a particular balloon in the balloonnetwork and the terrestrial data network. For example, a link 808 maybetween balloon 802C and terrestrial-network node 804D may provide acertain amount of inter-network bandwidth. However, for various reasons,it may be determined that more inter-network bandwidth is desiredbetween balloon 802C and terrestrial-network node 804D. Thepurchasing-agent system may then determine a particular amount ofadditional bandwidth that is desired between balloon 802C andterrestrial-network node 804D. The purchasing-agent system may alsodetermine pricing information for the desired amount of additionalbandwidth. For example, the purchasing-agent system may determine atotal dollar amount for certain amount of bandwidth or a dollar amountper unit of bandwidth.

In other instances, the purchasing-agent system may determine a demandfor additional bandwidth between the balloon network and a particularnode in the terrestrial data network. For example, terrestrial-networknode 804E may be too far from any balloon to connect directly. As such,a purchasing-agent system may search offers to provide inter-networklinks, including an offer from client device 806C, and determine thatclient device 806C is located such that it could provide an internetworklink between balloon 802C and terrestrial-network node 804E. Thepurchasing-agent system may also determine how much inter-networkbandwidth is desired between balloon 802C and terrestrial-network node804E and pricing information, such as bid pricing reflecting how muchthe desired bandwidth is worth to the operator of the balloon network.Then, if the offer pricing from client device 806C is less than or equalto the bid pricing, the purchasing-agent system may initiate a processto establish an inter-network link 810 via client device 806C, as shownin FIG. 8B. Further, if inter-network link 810 does not provide as muchbandwidth as desired, the purchasing-agent system may also initiate aprocess to establish an inter-network link 811 via client device 806B.

In some instances, a purchasing-agent system may determine the demandfor inter-network bandwidth for a certain geographic area. For instance,there may be an area where a bottleneck is preventing terrestrial accesspoints from providing as much bandwidth as they otherwise could. In thisscenario, in the purchasing-agent system may determine that additionalinter-network links between the terrestrial network in the area and theballoon network could provide inter-network bandwidth to at leastpartially overcome the bottleneck, so that the terrestrial access pointscan increase the available bandwidth in the geographic area.

For example, there may be a bottleneck at terrestrial-network node 804C,where a large amount of data is being routed to terrestrial-network node804E via terrestrial-network node 804D. If terrestrial-network node 804Eis receiving data to be routed to 804E at a rate that is greater thanthe bandwidth of link 812, then terrestrial-network node 804D may beginto build a buffer of data to send to terrestrial-network node 804E. Thebuild-up of buffered data may be detected and a purchasing-agent systemmay responsively determine that there is a demand for inter-networklinks to provide a route through the balloon network toterrestrial-network node 804E. To meet the demand, the purchasing-agentsystem may purchase one or more inter-network links, such as theinter-network links 810 and 811 shown in FIG. 8B. Other examples arealso possible.

VIII. OPERATION OF AN INTER-NETWORK LINK

The following section provides examples of how a client device mayoperate as an inter-network link, e.g., once the client device has beenselected to provide an inter-network link via an example method, methodsuch as method 600. The following section also provides examples of howan accounting system may credit accounts for client devices when theyprovide an inter-network link.

FIG. 9 is a flow chart illustrating a computer-implemented method 900,according to an example embodiment. Method 900 may be carried out by aclient device and/or by components of a client device. As a specificexample, method 900 could be implemented by the client device 500 shownin FIG. 5, in order to function as an inter-network link between balloonnetwork 502 and Internet 504. Further, a client device or a componentthereof may include program instructions stored on a non-transitorycomputer readable medium and a processor that executes the instructions.However, a client device may take other forms including software,hardware, and/or firmware.

As shown by block 902, method 900 involves a first client deviceoperating as an inter-network link between a balloon network and aterrestrial data network. While the first client device is operating asan inter-network link, the first client device may receive a datacommunication via a wireless link between a balloon in the balloonnetwork and the first client device, as shown by block 904. The firstclient device then sends the data communication to a node of aterrestrial data network (which is different from the balloon network),as shown by block 906.

In a further aspect, an example method may facilitate a user receivingcredit for sharing their device's bandwidth and providing aninter-network link. To do so, when the first client device sends data tothe terrestrial data network at block 906, the first client device mayalso update the associated the user-account with a credit that is basedon the data communication, as shown by block 908. For example, theclient device may send a credit-request message to an accounting systemsuch that a user-account that is associated with the device is updatedwith the credit. Alternatively, the user-account may be updated with thecredit automatically by, for example, accessing data records for thedevice that indicate the device provided an inter-network link andissuing a corresponding credit. Other techniques for issuing a credit toa user-account are also possible.

In an example method, the intended recipient of the data communicationis a second client device that is different from the first clientdevice. For example, method 900 could be implemented by the clientdevice 500 shown in FIG. 5A, in order to function as an inter-networklink by receiving data communications from balloon 510A that aredirected to any of client devices 508A, 508B, or 508, and forward thedata communication to access point 506 so that the data communicationscan be routed to the appropriate client device via Internet 504 (ordirectly to a client device such as client device 508A, which isconnected to the access point 506).

In a further aspect, to provide an inter-network link, an example methodmay involve a client device receiving a data communication via a linkbetween a node of the terrestrial data network, and sending the datacommunication to a balloon in the balloon network. For example, clientdevice 500 may function as an inter-network link by receiving datacommunications via access point 506, which may originate from any ofclient devices 508A, 508B, or 508C, and sending the data communicationsto balloon 510A so that so that the data communications can be routed tothe appropriate client device (e.g., client device 508D) via balloonnetwork 502.

An example method 500 may further involve optional functionality inwhich a client device makes itself available as an inter-network link ormake itself unavailable as an inter-network link. More specifically,method 900 may initially involve the first client device receiving anindication that it should be configured as a link between the balloonnetwork and the terrestrial data network, and responsively configuringitself to perform the functions of method 900. Such functionality may becontrollable by a user via an application that runs on a client device.

As an example, a mobile phone or a laptop computer might include anapplication via which a user can turn inter-network link functionalityon or off. Such an application could also allow for more complex controlover inter-network functionality of the client device. For example, suchan application might allow the user to adjust view the amount of thebandwidth from their device's connection to the balloon network that isavailable for inter-network data transfer.

Further, a client device may analyze its connection to a balloonnetwork, and then provide information about the connection to help auser decide whether and/or how to set up an inter-network link via theirdevice. For instance, a client device could measure current bandwidth,historical bandwidth, and/or predicted bandwidth over its link to aballoon network, and display this information to the user via anapplication. The client device could also determine the device'scurrent, historical, and/or predicted use of bandwidth for the device'sfor own communications via its balloon-network connection. The usercould then make a decision to set up an inter-network link via theirdevice and/or determine how much of their bandwidth to make availablefor an inter-network link based on the total bandwidth that is availableover the device's connection to the balloon network and/or the amount ofbandwidth required or desired for the user's own data communications viathe device.

In some embodiments, a client device may be configured to dynamicallyand intelligently adjust the amount of bandwidth provided for aninter-network link. For example, a client device could update the amountor percentage of the bandwidth over its connection to a balloon networkbased on bandwidth that is currently in use or is desirable for thedevice's own data communications via the balloon, and/or based onuser-defined preferences for allocating bandwidth to an inter-networklink. Other examples are also possible.

Further, a client device may use different techniques to relay databetween a balloon network and a terrestrial data network, depending uponthe particular implementation. For example, a client device may beconfigured to operate as a repeater, a router, or a bridge between theballoon network and the terrestrial data network. Other examples arealso possible.

In a further aspect of an example method, a client device may notify anentity or entities that make routing decisions when the client device isproviding an inter-network link, and/or may otherwise announce thedevice's availability to provide an inter-network link for data trafficbetween a balloon network and terrestrial data network. For example, aclient device may send a credit-request message to an accounting system.Alternatively, a client device might register a network address beingused for the inter-network link with an accounting system or anotherentity, which can then monitor traffic via the inter-network link sothat appropriate credit can be given. In either case, a user-accountthat is associated with the client device may then be credited accordingto the amount or percentage of the client device's network resourcesthat are made available and/or utilized to provide an inter-network linkbetween a balloon network and a terrestrial data network.

Herein, it should be understood that a “credit-request message” may beany kind of electronic communication relating to a client deviceproviding an inter-network link between a balloon network and aterrestrial data network. For example, a client device may simply notifyan accounting system when it is operating so as to provide aninter-network link (e.g., providing a start time and a stop time, or thetotal time for which it provided an inter-network link).

Additionally or alternatively, a credit-request message could indicatean amount of data transferred, a data rate over the inter-network link,and/or a percentage of the client device's bandwidth that dedicated toand/or utilized for an inter-network link. Further, a credit-requestmessage may include a unique identifier for the client device, which maybe used to look up the corresponding user-account, and/or may include aunique identifier for the corresponding user account (e.g., an accountnumber and/or a user-name and password). Other types of information mayalso be included in a credit-request message.

IX. ACCOUNTING FOR INTER-NETWORK LINKS

As noted above, a client device may send one or more credit-requestmessages to an accounting system such that an associated user-account isupdated with credit that is based on data communications via aninter-network link provided by the client device (e.g., based on thedevice's network resources that are made available and/or utilized torelay communications between a balloon network and a terrestrial datanetwork). Thus, in a further aspect, an accounting system may implementmethods to credit user-accounts according to inter-network linkfunctionality provided via the corresponding client devices.

FIG. 10 is a flow chart illustrating a computer-implemented accountingmethod 1000, according to an exemplary embodiment. Example methods, suchas method 1000, may be carried out by an accounting system, which may beimplemented by one or more computing devices, or by components of suchan accounting system. As a specific example, method 1000 could beimplemented by the accounting system 516 shown in FIG. 5A, in order tocredit a user-account that is associated with client device 500, whenclient device 500 provides an inter-network link between balloon network502 and Internet 504. However, an accounting system may take other formsincluding software, hardware, and/or firmware.

As shown by block 1002, method 1000 involves an accounting systemreceiving a credit-request message that indicates operation of a firstclient device as an inter-network link between a balloon network and aterrestrial data network. In response to the credit-request message, theaccounting system may determine a credit based on the operation of thefirst client device as an inter-network link, as shown by block 1004.Then, accounting system may then update the user-account correspondingto the client device based on the determined credit, as shown by block1006.

X. CONCLUSION

The above detailed description describes various features and functionsof the disclosed systems, devices, and methods with reference to theaccompanying figures. While various aspects and embodiments have beendisclosed herein, other aspects and embodiments will be apparent tothose skilled in the art. The various aspects and embodiments disclosedherein are for purposes of illustration and are not intended to belimiting, with the true scope and spirit being indicated by thefollowing claims.

We claim:
 1. A computer-implemented method comprising: determining, by acomputing device, a demand for inter-network bandwidth between a balloonnetwork and a terrestrial data network; determining one or more offersto provide an inter-network link, wherein the inter-network linkprovides inter-network bandwidth between the balloon network and theterrestrial data network, and wherein each offer is associated with acorresponding client device; based at least in part on a comparison of:(a) the demand for inter-network bandwidth and (b) the one or moreoffers to provide an inter-network link, selecting one or more of theoffers to provide an inter-network link; and initiating a process toestablish an inter-network link at each client device that correspondsto one of the one or more selected offers.
 2. The method of claim 1,wherein the demand for inter-network bandwidth between the balloonnetwork and the terrestrial data network comprises a demand foradditional bandwidth between a first balloon in the balloon network anda first node in the terrestrial data network.
 3. The method of claim 1,wherein the demand for inter-network bandwidth between the balloonnetwork and the terrestrial data network comprises a demand foradditional bandwidth between one or more balloons serving a particulargeographic area and the terrestrial data network.
 4. The method of claim1, wherein the demand for inter-network bandwidth between the balloonnetwork and the terrestrial data network comprises a demand foradditional bandwidth between the balloon network and one or more nodesof the terrestrial data network that provide service in a particulargeographic area.
 5. The method of claim 1, wherein determining thedemand for inter-network bandwidth comprises: determining an amount ofbandwidth demand for inter-network bandwidth; and determining bidpricing for the determined amount of bandwidth demand.
 6. The method ofclaim 5, wherein the amount of bandwidth demand is determined based atleast in part on one or more of: (a) resource utilization via one ormore existing inter-network links, (b) an expected change in latency fortraffic through the balloon network, (c) an expected change in networkcapacity of the balloon network, (d) an expected change in latency fortraffic through the terrestrial data network, (e) an expected change innetwork capacity of the terrestrial data network, and/or (f) one or morefactors related to the existing or potential offers to provideinter-network links.
 7. The method of claim 5, wherein determining thebid pricing comprises determining a bid price per unit of bandwidth forthe determined amount of bandwidth demand.
 8. The method of claim 5,wherein each offer comprises offer pricing for an inter-network link,and wherein selecting one or more of the offers to provide aninter-network link comprises: selecting one or more of the offers that:(a) provide one or more inter-network links that collectively provide anamount of additional inter-network bandwidth that meets the determinedamount of bandwidth demand and (b) have offer pricing that collectivelymeets the bid pricing for the determined amount of bandwidth demand. 9.The method of claim 1, wherein determining the demand for inter-networkbandwidth comprises determining both an amount of demand and bidpricing, for a particular period of time.
 10. The method of claim 1,wherein determining the demand for inter-network bandwidth comprises:determining a plurality of bandwidth-demand levels, wherein eachbandwidth-demand level corresponds to an amount of bandwidth demand, andwherein each bandwidth-demand level has an associated priority withrespect to the other bandwidth-demand levels; and determining respectivebid pricing for each bandwidth-demand level, wherein the bid pricing foreach bandwidth-demand level is determined based at least in part on thepriority of the bandwidth-demand level.
 11. The method of claim 1,wherein at least one of the offers comprises one or more of: (a)identification information for the client device that is offeringinter-network bandwidth via an inter-network link, (b) an indication ofthe amount of inter-network bandwidth that is being offered via theinter-network link, and (c) pricing information for the availablebandwidth, and (d) location information for the client device at whichthe inter-network link is being offered.
 12. The method of claim 1,wherein initiating the process to establish an inter-network link ateach client device that corresponds to one of the one or more selectedoffers comprises sending a message to each corresponding client devicethat indicates that the corresponding offer has been accepted.
 13. Acomputing system comprising: a non-transitory computer readable medium;program instructions stored on the non-transitory computer readablemedium and executable by at least one processor to cause the clientdevice to: determine a demand for inter-network bandwidth between aballoon network and a terrestrial data network; determine one or moreoffers to provide an inter-network link, wherein the inter-network linkprovides inter-network bandwidth between the balloon network and theterrestrial data network, and wherein each offer is associated with acorresponding client device; based at least in part on a comparison of:(a) the demand for inter-network bandwidth and (b) the one or moreoffers to provide an inter-network link, select one or more of theoffers to provide an inter-network link; and initiate a process toestablish an inter-network link at each client device that correspondsto one of the one or more selected offers.
 14. The computing system ofclaim 13, wherein the demand for inter-network bandwidth comprises anamount of bandwidth demand for inter-network bandwidth and bid pricingfor the determined amount of bandwidth demand.
 15. A non-transitorycomputer readable medium having stored therein instructions executableby a client computing device to cause the client computing device toperform functions comprising: determining a demand for inter-networkbandwidth between a balloon network and a terrestrial data network;determining one or more offers to provide an inter-network link, whereinthe inter-network link provides inter-network bandwidth between theballoon network and the terrestrial data network, and wherein each offeris associated with a corresponding client device; based at least in parton a comparison of: (a) the demand for inter-network bandwidth and (b)the one or more offers to provide an inter-network link, selecting oneor more of the offers to provide an inter-network link; and initiating aprocess to establish an inter-network link at each client device thatcorresponds to one of the one or more selected offers.
 16. Thenon-transitory computer readable medium of claim 15, wherein determiningthe demand for inter-network bandwidth comprises: determining an amountof bandwidth demand for inter-network bandwidth; and determining bidpricing for the determined amount of bandwidth demand.
 17. Acomputer-implemented method comprising: determining, based at least inpart on a measure of bandwidth utilization by a client device, an amountof available bandwidth that the client device can provide for aninter-network link between a balloon network and a terrestrial datanetwork; determining offer pricing information for the availablebandwidth; and sending an offer message that indicates an offer toprovide an inter-network link between the balloon network and theterrestrial data network, wherein the offer message comprises: (a) anindication of the amount of available bandwidth and (b) the pricinginformation for the available bandwidth.
 18. The method of claim 17,wherein the method is performed by the client device.
 19. The method ofclaim 17, wherein the method is performed by a selling-agent module onbehalf of the client device.
 20. The method of claim 17, wherein theoffer message comprises one or more of: identification information forthe client device and location information for the client device.
 21. Acomputer-implemented method comprising: determining, by a computingdevice, a demand for inter-network bandwidth between a balloon networkand a terrestrial data network; based at least in part on the demand forinter-network bandwidth, generating at least one request for aninter-network link, wherein the inter-network link providesinter-network bandwidth between the balloon network and the terrestrialdata network; and initiating a process to make the at least one requestfor an inter-network link available to one or more client devices via aninternetwork marketplace.
 22. The method of claim 21, furthercomprising, in response to the at least one request for an inter-networklink, receiving one or more offers to provide an inter-network link,wherein each offer is associated with a corresponding client device. 23.The method of claim 22, further comprising: based at least in part on acomparison of: (a) the demand for inter-network bandwidth and (b) theone or more offers to provide an inter-network link, selecting one ormore of the offers to provide an inter-network link; and initiating aprocess to establish an inter-network link at each client device thatcorresponds to one of the one or more selected offers.